Skip to content

feat(deepctl-core): use dg alias in plugin venv ABI mismatch warning#47

Merged
lukeocodes merged 1 commit intomainfrom
release-fix/toolkit-and-core
May 1, 2026
Merged

feat(deepctl-core): use dg alias in plugin venv ABI mismatch warning#47
lukeocodes merged 1 commit intomainfrom
release-fix/toolkit-and-core

Conversation

@lukeocodes
Copy link
Copy Markdown
Member

Summary

Two release-infrastructure fixes that need to land before #46 (release-please's chore: release main) is merged. Without this, pip install deepctl==0.2.19 will fail to resolve dependencies for every user.

What's broken

🔴 Install-blocker: deepctl-cmd-debug-toolkit is a phantom package

The toolkit subcommand was added in 768f34f (feat(debug): add toolkit subcommand for deepgram/support-toolkit scripts). The commit:

  • ✅ Created packages/deepctl-cmd-debug-toolkit/ with pyproject.toml, src/, etc.
  • ✅ Added deepctl-cmd-debug-toolkit>=0.0.1 to the umbrella pyproject.toml dependencies
  • ✅ Added [tool.uv.sources] workspace mapping
  • Did not register the package in release-please-config.json
  • Did not register the package in .release-please-manifest.json

Result: the package has never been built or published. pip install deepctl-cmd-debug-toolkit returns Not Found on PyPI today. When deepctl 0.2.19 publishes with deepctl-cmd-debug-toolkit>=0.0.1 in its dependency list, pip will try to resolve that and fail with a missing-distribution error.

AGENTS.md step 6 calls out exactly this set of files as the workspace integration checklist for new packages — it just wasn't followed.

🟡 deepctl-core's plugin warning never reaches PyPI users

fb22d8a (the squash merge of #42) added _warn_if_plugin_venv_python_mismatch() to deepctl-core's PluginManager. But its squash-merge body included markdown tables and ## Summary / ## What lands headings, and conventional-commits-parser choked on it. The release-please run logs show:

❯ commit could not be parsed: fb22d8acace66e5c346f3de1e7d0ee0d87236577 feat(homebrew): homebrew tap support (#42)

release-please skipped the commit entirely. So deepctl-core stayed at 0.2.8 in the manifest, no bump, no PyPI release. The umbrella deepctl 0.2.19 will publish with deepctl-core>=0.1.10 which pip resolves to PyPI's 0.2.8 — the version before the plugin warning was added. The warning code is on main but no PyPI user gets it.

Fixes in this PR

  1. Register deepctl-cmd-debug-toolkit with release-please.

    • .github/release-please-config.json — add the package block (matches the convention every other sub-package uses)
    • .github/.release-please-manifest.json — add \"packages/deepctl-cmd-debug-toolkit\": \"0.0.0\" so release-please's first release bumps it to 0.0.1 (matches pyproject.toml)
  2. Trigger deepctl-core release with a parseable conventional commit.

    Tweaks the plugin warning's remediation hint from deepctl plugin install to dg plugin install — the canonical user-facing alias used everywhere else in user messages and docs. Small real improvement. The squash-merge title feat(deepctl-core): ... parses cleanly and gives release-please a path-attributable feat on packages/deepctl-core/* to detect.

  3. Regenerate stale READMEs.

    scripts/generate_readmes.py --check flagged 3 stale READMEs on main (root, deepctl-cmd-listen, deepctl-cmd-mcp) plus the missing deepctl-cmd-debug-toolkit/README.md. All four regenerated.

After this merges

release-please will recompute and PR #46's body will look like:

<details><summary>0.2.19</summary>          # deepctl root
<details><summary>deepctl-cmd-debug-toolkit: 0.0.1</summary>   # NEW — fixes the install
<details><summary>deepctl-core: 0.2.9</summary>                # NEW — ships the plugin warning

Merging #46 then publishes all three to PyPI in one release event, and pip install deepctl==0.2.19 resolves end-to-end.

Verification

  • ruff format --check src/ packages/*/src — 112 files already formatted
  • ruff check src/ packages/*/src — clean
  • mypy --strict src/ packages/*/src — clean (112 source files)
  • python scripts/generate_readmes.py --check — all current
  • 4 plugin-warning tests still pass (test message regex doesn't depend on deepctl vs dg)

Pre-existing comments / docstrings

A couple of necessary comments still in this PR were retained per project convention:

Two release-infrastructure fixes that go together:

1. Register deepctl-cmd-debug-toolkit with release-please

The package was added in 768f34f (feat(debug): add toolkit subcommand)
but never wired into release-please. Result: not on PyPI, never built or
published, even though the umbrella deepctl pyproject.toml declares it
as a dependency. Once deepctl 0.2.19 publishes, pip install deepctl
would fail with a missing-dep error because deepctl-cmd-debug-toolkit
doesn't exist on PyPI.

  - .github/release-please-config.json: register the package
  - .github/.release-please-manifest.json: set initial version to 0.0.0
    so release-please's first release bumps it to 0.0.1 (matching
    pyproject.toml's pinned version)

2. Trigger deepctl-core release with the plugin venv ABI warning

The plugin warning landed in fb22d8a but its squash-merge body had
markdown tables and headings that broke release-please's
conventional-commits parser ('commit could not be parsed: fb22d8a...').
release-please skipped the commit entirely, so deepctl-core stayed at
0.2.8 in the manifest and the plugin warning code never ships to
PyPI users.

Tweaks the warning's remediation hint from 'deepctl plugin install' to
'dg plugin install' (the canonical user-facing alias used everywhere
else in user messages and docs). This is a small real improvement, and
gives release-please a clean parseable conventional-commit on a
deepctl-core path so the bump to 0.2.9 is detected.

3. Regenerate stale READMEs

scripts/generate_readmes.py --check flagged 3 stale READMEs on main:
root README, deepctl-cmd-listen, deepctl-cmd-mcp. Plus the new
deepctl-cmd-debug-toolkit/README.md that was missing entirely.
Regenerating all four brings the doc set into sync.

After this lands, release-please's PR (currently #46) will recompute to
include all three: deepctl 0.2.19, deepctl-cmd-debug-toolkit 0.0.1,
deepctl-core 0.2.9. Merging that PR fires the release for all three at
once, which is the only configuration where pip install deepctl==0.2.19
resolves cleanly.
@lukeocodes lukeocodes merged commit c7c61c0 into main May 1, 2026
39 checks passed
@lukeocodes lukeocodes deleted the release-fix/toolkit-and-core branch May 1, 2026 23:11
@github-actions github-actions Bot mentioned this pull request May 1, 2026
lukeocodes pushed a commit that referenced this pull request May 1, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>0.2.19</summary>

## [0.2.19](v0.2.18...v0.2.19)
(2026-05-01)


### Features

* **debug:** add toolkit subcommand for deepgram/support-toolkit scripts
([768f34f](768f34f))
* **deepctl-core:** use dg alias in plugin venv ABI mismatch warning
([#47](#47))
([c7c61c0](c7c61c0))


### Documentation

* add dx-stack rules to CLAUDE.md, add cross-stack hook
([f4fbf3e](f4fbf3e))
</details>

<details><summary>deepctl-core: 0.2.9</summary>

##
[0.2.9](deepctl-core-v0.2.8...deepctl-core-v0.2.9)
(2026-05-01)


### Features

* **deepctl-core:** use dg alias in plugin venv ABI mismatch warning
([#47](#47))
([c7c61c0](c7c61c0))
</details>

<details><summary>deepctl-cmd-debug-toolkit: 0.1.0</summary>

## 0.1.0 (2026-05-01)


### Features

* **debug:** add toolkit subcommand for deepgram/support-toolkit scripts
([768f34f](768f34f))
* **deepctl-core:** use dg alias in plugin venv ABI mismatch warning
([#47](#47))
([c7c61c0](c7c61c0))
</details>

<details><summary>deepctl-cmd-mcp: 0.1.13</summary>

##
[0.1.13](deepctl-cmd-mcp-v0.1.12...deepctl-cmd-mcp-v0.1.13)
(2026-05-01)


### Features

* **deepctl-core:** use dg alias in plugin venv ABI mismatch warning
([#47](#47))
([c7c61c0](c7c61c0))
</details>

<details><summary>deepctl-cmd-listen: 0.0.10</summary>

##
[0.0.10](deepctl-cmd-listen-v0.0.9...deepctl-cmd-listen-v0.0.10)
(2026-05-01)


### Features

* **deepctl-core:** use dg alias in plugin venv ABI mismatch warning
([#47](#47))
([c7c61c0](c7c61c0))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant